## Language as OS

语言即系统（Language as OS，简称LaOS）是Auto语言的设计理念。

这个理念的意思是：

1. 编程语言不仅是语法本身，也不仅是编译器本身，而是一套完整的生态。
2. 编程语言的很多设计目标都和操作系统类似。后面会详细进行比较。
3. 编程语言可以用来实现操作系统，也可以用来在操作系统中实现程序；在必要的情况下，编程语言本身可以成为一个操作系统。

## 操作系统的特性。

1. 共享：让不同的程序可以共享计算机的硬件资源。操作系统通过“进程”、“线程”等并发概念，让程序可以“同时”运行。
2. 抽象：通过抽象封装的方式，实现硬件切换自由。上层的程序并不需要直到他运行在哪个型号的硬件上。换句话，操作系统实现了“跨硬件自由”。操作系统通过“硬件驱动”+“软件接口”的方式来实现对不同硬件的抽象封装。
3. 服务：提供统一的功能服务，让不同的程序都能使用。操作系统往往是通过“系统调用”来提供服务的。

## 操作系统的主要模块

1. 内核
2. 任务调度
3. 内存管理
4. 文件系统
5. 外设驱动
6. 网络系统
